home *** CD-ROM | disk | FTP | other *** search
/ Quick PC 61 / Quick PC 61.iso / I386 / PCHDT_E3.CAB / rcBuddy.cab / RAClient.js < prev    next >
Encoding:
Text File  |  2003-03-24  |  11.0 KB  |  432 lines

  1. var L_EXPIRED_Text = "Invitation has expired.";
  2. var L_UNABLETOLOCATEXML_Text = "The invitation was not found. It may have been deleted or corrupted. You can try and open the invitation again, or ask the sender for a new invitation.";
  3. var L_ERRLOADINGINCIDENT_Text = "There is a problem with the invitation and it cannot be opened. To use Remote Assistance, the sender of this invitation will have to send you a new invitation.";
  4. var L_ERRLOADINGRCTICKET_Text = "There is a problem with the invitation and it cannot be opened. To use Remote Assistance, the sender of this invitation will have to send you a new invitation.";
  5. var L_ERRQUIT_Text = "Failed to Disconnect from Server";
  6. var L_ERRLOADFROMXMLFILE_Text = "There is a problem with the invitation and it cannot be opened. To use Remote Assistance, the sender of this invitation will have to send you a new invitation.";
  7. var L_DOT_Text = ".";
  8. var L_AM_Text ="AM";
  9. var L_PM_Text ="PM";
  10. var L_JAN_Text = "Jan";
  11. var L_FEB_Text = "Feb";
  12. var L_MAR_Text = "Mar";
  13. var L_APR_Text = "Apr";
  14. var L_MAY_Text = "May";
  15. var L_JUN_Text = "Jun";
  16. var L_JUL_Text = "Jul";
  17. var L_AUG_Text = "Aug";
  18. var L_SEP_Text = "Sep";
  19. var L_OCT_Text = "Oct";
  20. var L_NOV_Text = "Nov";
  21. var L_DEC_Text = "Dec";
  22. var L_UNKNOWN_Text = "Unknown";
  23. function SAFRemoteAssistanceHelper()
  24. {
  25. try
  26. {
  27. this.m_oSAFRemoteDesktopClient = null;
  28. this.m_oSAFRemoteDesktopChannelMgr = null;
  29. this.m_oChatChannel = null;
  30. this.m_oControlChannel = null;
  31. this.m_oSAFClassFactory = null;
  32. this.m_idCtx = null;
  33. this.m_oCurrentIncident = null;
  34. this.m_oEncryption = null;
  35. this.m_oDict = null;
  36. this.m_oSAFIntercomClient = null;
  37. this.m_oFso = null;
  38. this.m_oRCFileDlg = null;
  39. this.m_bChatBoxHidden = false;
  40. this.m_bPasswordSet = false;
  41. this.m_bRCEnabled = false;
  42. this.m_bConnected = false;
  43. this.m_bUserDisconnect = false;
  44. this.m_bLoadFromFile = true;
  45. this.m_bEnableSmartScaling = true;
  46. this.m_bPerfOptimize = false;
  47. this.m_bMSRA = true;
  48. this.m_bListen = false;
  49. this.m_bIsIM = false;
  50. this.m_bURA = false;
  51. this.m_bExpired = false;
  52. this.m_bDeleteTicket = false;
  53. this.m_bNoPrompt = false;
  54. this.m_bNoChat = false;
  55. this.m_iChannelId = 1000;
  56. this.m_UserWidth = window.screen.availWidth;
  57. this.m_UserHeight = window.screen.availHeight;
  58. this.m_UserColorDepth = window.screen.colorDepth;
  59. this.m_szURL = null;
  60. this.m_szCurrentIP = null;
  61. this.m_szLocalUser = null;
  62. this.m_szIncidentFile = null;
  63. this.m_szUserName = null;
  64. this.m_szExpiryTime = "1 HOUR";
  65. this.m_szPassword = null;
  66. this.m_szRCTicketEncrypted = null;
  67. this.m_szRCTicket = null;
  68. this.m_szHelpeeIP = null;
  69. this.m_szRCTicket = null;
  70. this.m_szUserName = null;
  71. this.m_szIncidentXML = null;
  72. this.m_szPassStub = "";
  73. this.m_szExpertTicket = null;
  74. this.m_szExpertBlob = null;
  75. this.m_bDebug = true;
  76. this.m_szFuncName = null;
  77. this.m_TraceFso = null;
  78. this.m_TraceFileHandle = null;
  79. this.m_TraceFile = null;
  80. this.m_TracetFileName = null;
  81. }
  82. catch(error)
  83. {
  84. FatalError( L_ERRFATAL_Text, error );
  85. }
  86. }
  87. function ParseURL()
  88. {
  89. var szIncidentFileURL = null;
  90. var szTempstr = null;
  91. var szTempstr1 = null;
  92. var i = null;
  93. var j = null;
  94. var k = null;
  95. ;
  96. try
  97. {
  98. i = 1;
  99. if (i > 0)
  100. {
  101. szIncidentFileURL = oSAFClassFactory.ExtraArgument;
  102. ;
  103. j = szIncidentFileURL.indexOf("IM=");
  104. if (j == 0)
  105. {
  106. g_oSAFRemoteAssistanceHelper.m_bIsIM = true;
  107. g_oSAFRemoteAssistanceHelper.m_SessionID = szIncidentFileURL.slice(3);
  108. ;
  109. g_oSAFRemoteAssistanceHelper.m_bLoadFromFile = false;
  110. ;
  111. return g_oSAFRemoteAssistanceHelper.m_SessionID;
  112. }
  113. j = szIncidentFileURL.indexOf("=", 1);
  114. szTempstr = szIncidentFileURL.slice(j+1);
  115. if( 0 == szTempstr.indexOf( "LISTEN" ))
  116. {
  117. g_oSAFRemoteAssistanceHelper.m_bListen = true;
  118. g_oSAFRemoteAssistanceHelper.m_szIncidentFile = szTempstr;
  119. }
  120. else
  121. {
  122. g_oSAFRemoteAssistanceHelper.m_szIncidentFile = szTempstr;
  123. }
  124. ;
  125. }
  126. else
  127. {
  128. FatalError( L_UNABLETOLOCATEXML_Text );
  129. ;
  130. return null;
  131. }
  132. }
  133. catch(error)
  134. {
  135. FatalError( error.description, error );
  136. return null;
  137. }
  138. ;
  139. return g_oSAFRemoteAssistanceHelper.m_szIncidentFile;
  140. }
  141. function LoadIncidentFromFile()
  142. {
  143. ;
  144. try
  145. {
  146. g_oSAFRemoteAssistanceHelper.m_oCurrentIncident = oSAFClassFactory.CreateObject_Incident();
  147. g_oSAFRemoteAssistanceHelper.m_oEncryption = oSAFClassFactory.CreateObject_Encryption();
  148. try
  149. {
  150. if(true == g_oSAFRemoteAssistanceHelper.m_bLoadFromFile )
  151. {
  152. g_oSAFRemoteAssistanceHelper.m_oCurrentIncident.LoadFromXMLFile( g_oSAFRemoteAssistanceHelper.m_szIncidentFile );
  153. }
  154. else
  155. {
  156. g_oSAFRemoteAssistanceHelper.m_oCurrentIncident.LoadFromXMLString( g_oSAFRemoteAssistanceHelper.m_szIncidentXML );
  157. }
  158. }
  159. catch(error)
  160. {
  161. try
  162. {
  163. var oLogger = new ActiveXObject("RACplDlg.RAEventLog");
  164. var args = new Array(1);
  165. args[0] = parent.EscapedName(parent.GetLocalUser());
  166. oLogger.LogRemoteAssistanceEvent(0,2,args);
  167. }
  168. catch(e)
  169. {
  170. }
  171. FatalError( L_ERRLOADFROMXMLFILE_Text, error );
  172. ;
  173. return null;
  174. }
  175. if( false == ValidateIncident())
  176. {
  177. try
  178. {
  179. var oLogger = new ActiveXObject("RACplDlg.RAEventLog");
  180. var args = new Array(1);
  181. args[0] = parent.EscapedName(parent.GetLocalUser());
  182. oLogger.LogRemoteAssistanceEvent(0,2,args);
  183. }
  184. catch(e)
  185. {
  186. }
  187. FatalError(L_ERRLOADINGINCIDENT_Text);
  188. ;
  189. return null;
  190. }
  191. else
  192. {
  193. g_oSAFRemoteAssistanceHelper.m_szUserName = EscapedName( g_oSAFRemoteAssistanceHelper.m_oCurrentIncident.UserName );
  194. g_oSAFRemoteAssistanceHelper.m_szRCTicketEncrypted = g_oSAFRemoteAssistanceHelper.m_oCurrentIncident.RCTicket;
  195. g_oSAFRemoteAssistanceHelper.m_oDict = g_oSAFRemoteAssistanceHelper.m_oCurrentIncident.Misc;
  196. var DtStart = g_oSAFRemoteAssistanceHelper.m_oDict.Item("DtStart");
  197. var DtLength = g_oSAFRemoteAssistanceHelper.m_oDict.Item("DtLength");
  198. ;
  199. ;
  200. var ms = DtStart*1000 + DtLength*60*1000;
  201. ;
  202. var ExpiryDate = new Date ( ms );
  203. var iNow = Date.parse(new Date());
  204. g_oSAFRemoteAssistanceHelper.m_iRemainingMins = parseInt(((ms - iNow)/1000)/60);
  205. if( 0 >= g_oSAFRemoteAssistanceHelper.m_iRemainingMins)
  206. {
  207. g_oSAFRemoteAssistanceHelper.m_bExpired = true;
  208. }
  209. g_oSAFRemoteAssistanceHelper.m_szExpiryTime = GetTime(ExpiryDate);
  210. ;
  211. g_oSAFRemoteAssistanceHelper.m_szHelpeeIP = g_oSAFRemoteAssistanceHelper.m_oDict.Item("IP");
  212. if(1 == g_oSAFRemoteAssistanceHelper.m_oDict.Item("DeleteTicket"))
  213. {
  214. g_oSAFRemoteAssistanceHelper.m_bDeleteTicket = true;
  215. }
  216. if((1 == g_oSAFRemoteAssistanceHelper.m_oDict.Item("NoPrompt"))&&( false == g_oSAFRemoteAssistanceHelper.m_oCurrentIncident.RCTicketEncrypted))
  217. {
  218. g_oSAFRemoteAssistanceHelper.m_bNoPrompt = true;
  219. }
  220. if(1 == g_oSAFRemoteAssistanceHelper.m_oDict.Item("NoChat"))
  221. {
  222. g_oSAFRemoteAssistanceHelper.m_bNoChat = true;
  223. }
  224. if(1 == g_oSAFRemoteAssistanceHelper.m_oDict.Item("URA"))
  225. {
  226. g_oSAFRemoteAssistanceHelper.m_bURA = true;
  227. }
  228. try
  229. {
  230. if( (1 == g_oSAFRemoteAssistanceHelper.m_oDict.Item("L")) || (true == oSAFClassFactory.Connectivity.IsAModem ))
  231. {
  232. g_oSAFRemoteAssistanceHelper.m_bPerfOptimize = true;
  233. }
  234. }
  235. catch(error)
  236. {
  237. g_oSAFRemoteAssistanceHelper.m_bPerfOptimize = false;
  238. }
  239. ;
  240. if(true == g_oSAFRemoteAssistanceHelper.m_bDeleteTicket)
  241. {
  242. try
  243. {
  244. g_oSAFRemoteAssistanceHelper.m_oFso.DeleteFile( g_oSAFRemoteAssistanceHelper.m_szIncidentFile );
  245. }
  246. catch(error)
  247. {
  248. FatalError( error.description + " (" + g_oSAFRemoteAssistanceHelper.m_szIncidentFile + ")" );
  249. ;
  250. return null;
  251. }
  252. }
  253. }
  254. }
  255. catch(error)
  256. {
  257. FatalError(L_ERRLOADINGINCIDENT_Text, error);
  258. ;
  259. return null;
  260. }
  261. ;
  262. return g_oSAFRemoteAssistanceHelper.m_oCurrentIncident;
  263. }
  264. function ValidateIncident()
  265. {
  266. ;
  267. var bRetVal = true;
  268. if("" == g_oSAFRemoteAssistanceHelper.m_oCurrentIncident.UserName)
  269. {
  270. g_oSAFRemoteAssistanceHelper.m_oCurrentIncident.UserName = L_DEFAULTUSER_Text;
  271. }
  272. if("" == g_oSAFRemoteAssistanceHelper.m_oCurrentIncident.RCTicket)
  273. {
  274. bRetVal = false;
  275. }
  276. ;
  277. return bRetVal;
  278. }
  279. var g_bAlreadyDisconnected = false;
  280. function UserDisconnect()
  281. {
  282. try
  283. {
  284. if ( true == parent.g_ExpertDisconnected )
  285. {
  286. return;
  287. }
  288. ;
  289. if( false == g_bAlreadyDisconnected )
  290. {
  291. g_bAlreadyDisconnected = true;
  292. var vArgs = new Array(1);
  293. vArgs[0] = L_ERRDISCONNECT1_Text + g_oSAFRemoteAssistanceHelper.m_szUserName + L_ERRDISCONNECT2_Text + g_oSAFRemoteAssistanceHelper.m_szUserName + L_DOT_Text;
  294. var vRetVal = window.showModelessDialog( "hcp://system/Remote Assistance/Interaction/Common/ErrorMsgs.htm", vArgs, "dialogwidth:405px;dialogHeight:165px;status:no;resizable:no;help:no" );
  295. }
  296. }
  297. catch(error)
  298. {
  299. }
  300. }
  301. function RCDisconnect()
  302. {
  303. ;
  304. try
  305. {
  306. if( null != parent.frames.idFrameTools.g_oSAFRemoteAssistanceHelper)
  307. {
  308. g_oSAFRemoteAssistanceHelper = parent.frames.idFrameTools.g_oSAFRemoteAssistanceHelper;
  309. }
  310. else if( null != parent.g_oSAFRemoteAssistanceHelper )
  311. {
  312. g_oSAFRemoteAssistanceHelper = parent.g_oSAFRemoteAssistanceHelper;
  313. }
  314. if ((g_oSAFRemoteAssistanceHelper.m_szUserName != null) && ( g_oSAFRemoteAssistanceHelper.m_szUserName.length == 0 ))
  315. {
  316. g_oSAFRemoteAssistanceHelper.m_szUserName = L_DEFAULTUSER_Text
  317. }
  318. if (true == parent.g_bVoipOn)
  319. {
  320. try
  321. {
  322. if( null != g_oSAFRemoteAssistanceHelper.m_oSAFIntercomClient )
  323. {
  324. ;
  325. g_oSAFRemoteAssistanceHelper.m_oSAFIntercomClient.Disconnect();
  326. ;
  327. }
  328. parent.g_bVoipOn = false;
  329. parent.frames.idFrameTools.idTB.SetState( "btnVoice", false );
  330. }
  331. catch (e)
  332. {
  333. return;
  334. }
  335. }
  336. if((false == g_oSAFRemoteAssistanceHelper.m_bUserDisconnect) && (true == g_oSAFRemoteAssistanceHelper.m_bConnected))
  337. {
  338. g_oSAFRemoteAssistanceHelper.m_oSAFRemoteDesktopClient.DisconnectFromServer();
  339. ;
  340. ;
  341. }
  342. else if (true == g_oSAFRemoteAssistanceHelper.m_bConnected)
  343. {
  344. if(null != g_oSAFRemoteAssistanceHelper.m_oSAFRemoteDesktopClient )
  345. {
  346. g_oSAFRemoteAssistanceHelper.m_oSAFRemoteDesktopClient.DisconnectFromServer();
  347. }
  348. g_oSAFRemoteAssistanceHelper.m_bConnected = false;
  349. UserDisconnect();
  350. ;
  351. ;
  352. }
  353. }
  354. catch(e)
  355. {
  356. FatalError( L_ERRQUIT_Text );
  357. }
  358. }
  359. function Helper_SetupChatChannel()
  360. {
  361. ;
  362. try
  363. {
  364. if(null == g_oSAFRemoteAssistanceHelper.m_oSAFRemoteDesktopChannelMgr)
  365. {
  366. g_oSAFRemoteAssistanceHelper.m_oSAFRemoteDesktopChannelMgr = g_oSAFRemoteAssistanceHelper.m_oSAFRemoteDesktopClient.ChannelManager;
  367. }
  368. g_oSAFRemoteAssistanceHelper.m_oChatChannel = g_oSAFRemoteAssistanceHelper.m_oSAFRemoteDesktopChannelMgr.OpenDataChannel( "70" );
  369. g_oSAFRemoteAssistanceHelper.m_oChatChannel.OnChannelDataReady = function()
  370. { parent.Helper_ChatChannelDataReadyHandler(); }
  371. }
  372. catch(error)
  373. {
  374. parent.FatalError( parent.L_ERRFATAL_Text, error );
  375. }
  376. ;
  377. return;
  378. }
  379. function Helper_SetupDataChannels()
  380. {
  381. ;
  382. try
  383. {
  384. Helper_SetupControlChannel();
  385. Helper_SetupChatChannel();
  386. }
  387. catch(error)
  388. {
  389. FatalError( L_ERRFATAL_Text, error );
  390. }
  391. ;
  392. return;
  393. }
  394. function Helper_ChatChannelDataReadyHandler()
  395. {
  396. ;
  397. var Data = null;
  398. try
  399. {
  400. if(true == parent.frames.idFrameTools.g_oSAFRemoteAssistanceHelper.m_bChatBoxHidden)
  401. {
  402. parent.frames.idFrameStatus.Helper_HideChat();
  403. }
  404. parent.idCtx.minimized = false;
  405. parent.idCtx.bringToForeground();
  406. SoundBeep();
  407. Data = g_oSAFRemoteAssistanceHelper.m_oChatChannel.ReceiveChannelData();
  408. parent.frames.idFrameChat.Helper_UpdateChatHistory( Data );
  409. }
  410. catch(error)
  411. {
  412. FatalError( parent.L_ERRFATAL_Text, error );
  413. }
  414. ;
  415. return;
  416. }
  417. function GetTime(oDate)
  418. {
  419. ;
  420. var DateTime;
  421. try
  422. {
  423. DateTime = oDate.toLocaleString();
  424. }
  425. catch(error)
  426. {
  427. DateTime = L_UNKNOWN_Text;
  428. }
  429. ;
  430. return(DateTime);
  431. }
  432.